package com.zhuhjay.enums;

import lombok.Getter;

/**
 * 正则匹配模式
 * @author ZhuHJay
 * @date 2023/1/11 20:29
 */
@Getter
public enum MatchingMode {

    /** 常用正则 */
    Email("^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$", "邮箱格式不正确"),
    Username("^(?=.*[a-zA-Z0-9].*)(?=.*[a-zA-Z].*)[a-zA-Z0-9]{4,10}$", "用户名为4-10位, 由数字和字母组成(不可包含特殊符号)"),
    NikeName("^[a-zA-Z\\u4e00-\\u9fa5]{4,16}$", "昵称为4-16位, 由汉字或字母组成"),
    Password("^(?=.*[a-zA-Z].*)(?=.*[0-9].*)[a-zA-Z0-9-*/+.~!@#$%^&*()]{6,}$", "密码至少6位, 由数字和字母组成(可包含特殊符号)"),
    Telephone("^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$", "手机号码格式不正确"),
    Identity("^[1-8]{2}[0-9]{4}[0-9]{4}((0[1-9]{1})|(1[0-2]{1}))((0[1-9]{1})|(1[0-9]{1})|(2[0-9]{1})|(3[0-1]{1}))[0-9]{3}[0-9xX]{1}$", "身份证格式不正确");

    private final String regular;
    private final String message;

    MatchingMode(String regular, String message) {
        this.regular = regular;
        this.message = message;
    }
}

